Labo 2 - Marche à suivre
Retour à la page du cours
Le gros du travail du labo 2, c'était de trouver comment faire pour mettre en place ce qui était demandé. Une fois que c'est trouvé, les étapes à suivre ne sont pas bien compliquées. Je prends pour acquis que vous utilisez Fedora, tel qu'il est prévu dans le cours.
- Installer xinetd, le serveur telnet et vsftpd:
yum install xinetd
yum install telnet-server
yum groupinstall "FTP Server"
- Avant d'aller plus loin, on n'oublie pas d'éteindre le firewall sur les deux machines impliquées. Même chose pour SElinux:
service iptables stop
setenforce 0
- Ensuite, il faut configurer le serveur telnet. Il est déjà pris en charge par xinetd au départ, donc on n'a pas grand-chose à faire. D'abord, on va dans le fichier /etc/services pour changer le port de telnet de 23 à 2323. Du coup, c'est une très bonne idée d'aller vérifier s'il n'y aurait pas déjà quelque chose de défini pour ce port. Comme c'est le cas, on va commenter la ligne de définition originale de 2323 (comme ça on peut aisément revenir en arrière plus tard).
- On va ensuite dans /etc/xinetd.d/telnet pour mettre le paramètre disable à no (par défaut, tout est éteint sous xinetd).
- On force la relecture des fichiers de configuration de xinetd:
ps -ef | grep xinetd [puis on note le pid]
kill -SIGHUP <pid de xinetd>
- Optionnellement, on peut aussi redémarrer xinetd au complet à la place (plus simple, mais dans un environnement réel, on voudra peut-être éviter):
service xinetd restart
- Notez que c'est à faire à chaque fois qu'on modifie des fichiers de configuration utilisés par xinetd, ce qui inclut /etc/xinetd.conf, tous les fichiers de /etc/xinetd.d/, /etc/services et les fichiers /etc/hosts.allow et /etc/hosts.deny.
- Normalement, on devrait pouvoir maintenant faire un telnet d'un PC à l'autre en faisant:
telnet 10.10.0.X 2323
- Le numéro de port est optionnel (puisque nos deux PC sont configurés pour utiliser le port 2323, on pourrait l'omettre), mais si on l'utilise, notez l'espace entre l'adresse et le port, et non pas un ":".
- Une fois qu'on s'est assuré que ça fonctionne, on peut modifier les fichiers de contrôle d'accès pour ne permettre le telnet qu'à votre partenaire.
#/etc/hosts.deny
ALL:ALL
#/etc/hosts.allow
in.telnetd:10.10.0.X
- On recharge les fichiers de config de xinetd (voir plus haut) et on réessaie. Normalement, ça devrait continuer à fonctionner. Idéalement, il faudrait tester à partir d'une autre adresse pour confirmer que c'est bloqué. Et voilà pour le telnet.
- Le FTP demande plus de manipulations. Tout d'abord, il faut aller éditer le fichier /etc/vsftpd/vsftpd.conf pour mettre LISTEN à NO (puisque c'est xinetd qui va écouter). On en profitera pour changer dans /etc/vsftpd/vsftpd.conf: LOCAL_ENABLE à YES, ANONYMOUS_ENABLE à YES, question de permettre aux comptes locaux de la machine de se connecter, ainsi qu'au compte anonyme (toujours pratique quand on débogue). Après coup, il faut arrêter le service vsftpd. Celui-ci ne doit pas être démarré puisque c'est xinetd qui va prendre en charge les demandes de connexion:
service vsftpd stop
- Pour que xinetd prenne le ftp en charge, il faut créer un fichier nommé ftp (et rien d'autre) dans /etc/xinetd.d/ puis y mettre les informations suivantes (on peut partir du fichier de telnet pour simplifier, c'est presque la même chose):
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
disable = no
}
- Dans le fichier précédent:
- On nomme le service ftp, comme le nom du fichier, comme le nom officiel du service selon /etc/services. C'est essentiel.
- Le socket_type signifie la façon bas-niveau de se connecter. Un socket est une classe de base utilisée pour faire une connexion entre deux machines. Le stream est le plus répandu dans le monde TCP/IP.
- Le paramètre wait à no signifie que xinetd n'a pas besoin d'attendre qu'une connexion précédente soit terminée pour accepter une autre, ce qui est toujours mieux.
- L'usager nommé dans le paramètre user sera l'usager qui exécutera le serveur (et ça n'a rien à voir avec les droits que l'usager qui se connecte obtiendra). On s'assurera de mettre root pour que le serveur puisse bien fonctionner.
- Le chemin vers l'exécutable du serveur est essentiel. Si on ne sait pas où il est, on peut faire which vsftpd.
- Évidemment, on met disable à no pour que le service soit en fonction.
- Ensuite, on va éditer /etc/services pour mettre ftp sur le port 2121 (et on s'assure de commenter ce qui est déjà sur le port 2121). On ajoutera à /etc/hosts.allow la ligne suivante:
vsftpd:10.10.0.
- On recharge les configs de xinetd et on teste.
- Pour ce qui est de la bannière de refus de connexion, on peut modifier /etc/xinetd.conf pour enlever le commentaire à la ligne banner_fail et y placer le texte qu'on veut. Toutefois, des bugs ont été découverts lorsque l'on utilise les bannières de xinetd et vsftpd, donc finalement, mieux vaut ne pas les utiliser.
- Il ne reste plus que l'horaire pour le ftp. On n'a qu'à aller dans le fichier /etc/xinetd.d/ftp (puisque c'est seulement pour ce service-là qu'on veut un horaire) et on ajoutera quelque part:
access_times = 09:00-17:00
- Notez le format des heures, en 24 heures, 4 chiffres, le : au centre, et le tiret entre les deux heures. Encore une fois, si on ajoute ça, il faut recharger les fichiers de config de xinetd.
Retour à la page du cours